package org.example.jd.aiservice;

import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;

import java.time.DayOfWeek;
import java.time.LocalDateTime;

/**
 * 数据计算器类，提供日期计算功能
 */
@Component
public class DataCalculator {

    /**
     * 计算指定工作日数后的具体日期
     * 该方法从当前日期开始，跳过周末（周六和周日），计算指定工作日数后的日期
     *
     * @param days 需要计算的工作日数，必须为正整数
     * @return 计算结果日期的字符串表示
     */
    @Tool("计算指定天数后的具体日期")
    String date(Integer days){
        System.out.println("计算指定天数后的具体");
        LocalDateTime current = LocalDateTime.now();
        int remainingDays = days;

        // 循环增加天数，跳过周末直到达到指定的工作日数
        while (remainingDays > 0) {
            current = current.plusDays(1);
            DayOfWeek dayOfWeek = current.getDayOfWeek();
            if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) {
                remainingDays--;
            }
        }
        return current.toString();
    }
}
